package br.com.viewcar.web.bean;

import java.util.ArrayList;
import java.util.List;

import javax.faces.model.SelectItem;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;

import br.com.viewcar.entity.Bairro;
import br.com.viewcar.entity.Cidade;
import br.com.viewcar.entity.Estado;
import br.com.viewcar.service.BairroService;
import br.com.viewcar.service.CidadeService;

@Scope("session")
@Component("bairroBean")
public class BairroBean extends EntityBean<Integer, Bairro> {

	@Autowired
	private BairroService service;

	@Autowired
	private CidadeService cidadeService;

	protected Integer retrieveEntityId(Bairro entity) {

		return entity.getId();
	}

	protected BairroService retrieveEntityService() {

		return this.service;
	}

	protected Bairro createNewEntity() {

		Bairro bairro = new Bairro();

		bairro.setEstado(new Estado());

		bairro.setCidade(new Cidade());

		return bairro;
	}

	public String populate() {

		return SUCCESS;
	}

	public List<SelectItem> getCidades() {

		List<SelectItem> result = new ArrayList<SelectItem>();

		Integer id = this.entity.getEstado().getId();

		if (id != null) {

			List<Cidade> cidades = cidadeService.findByEstado(id);

			for (Cidade cidade : cidades) {

				result.add(new SelectItem(cidade.getId(), cidade.getNome()));
			}
		}

		return result;
	}
}